package qc.module.iot.dto;

import lombok.Data;
import qc.common.core.enums.CommunicationChannelTypeEnum;
import qc.common.core.enums.iot.IotPacketsDataFrameTypeEnum;
import qc.common.core.enums.iot.IotPacketsDataProtocolEnum;

import java.time.LocalDateTime;

/**
 * Iot报文消息对象
 *
 * @author QuCheng Tech
 * @since 2025/10/28
 */
@Data
public class MqIotPacketsMessageDto {
    /**
     * 记录ID
     */
    private String id;
    /**
     * 接收时间;写入/接收时间
     */
    private LocalDateTime intm;
    /**
     * 报文字节数组
     */
    private byte[] bytes;
    /**
     * 报文内容;HEX字符串
     */
    private String hex;
    /**
     * 通道ID
     */
    private String channelId;
    /**
     * 通道名称
     */
    private String channelName;
    /**
     * 通道类型
     */
    private CommunicationChannelTypeEnum channelType;
    /**
     * 数据协议
     */
    private IotPacketsDataProtocolEnum dataProtocol;
    /**
     * 数据帧类型;心跳、数据、回复等
     */
    private IotPacketsDataFrameTypeEnum frameType;
    /**
     * 数据帧名称
     */
    private String frameName;
    /**
     * 标记;为枚举IotPacketsDataFlagEnum值累加
     */
    private int flag;
    /**
     * 报文中的站点编码/遥测站地址
     */
    private String stcd;
    /**
     * 标识该消息是否为从数据帧报文记录表中提取出来的，如果是从数据库中提取出来的只进行数据帧解析消费（不需要重复进行数据帧保存消费）
     */
    private boolean isFromDb;
}
